package zzxkj.blog.imChat.handler;

import lombok.extern.slf4j.Slf4j;
import zzxkj.blog.common.lang.Consts;
import zzxkj.blog.imChat.handler.impl.ChatMsgHandler;
import zzxkj.blog.imChat.handler.impl.PingMsgHandler;

import java.util.HashMap;
import java.util.Map;

/**
 * 处理器工厂
 * 1、消息处理器初始化
 * 2、根据类型获取消息处理器
 * @author zzxkj
 */
@Slf4j
public class MsgHandlerFactory {

    /**
     * 直接用map存起来
     */
    private static Map<String, MsgHandler> handlerMap = new HashMap<>();

    /**
     * 两个处理器类型
     * 聊天和心跳
     */
    public static void init() {
        handlerMap.put(Consts.IM_MESS_TYPE_CHAT, new ChatMsgHandler());
        handlerMap.put(Consts.IM_MESS_TYPE_PING, new PingMsgHandler());

        log.info("hander factory init!!");
    }

    public static MsgHandler getMsgHandler(String type) {
        return handlerMap.get(type);
    }

}
